package com.zhijian.warehouse.manage.entity.vo.response;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author HCG
 * @version 1.0
 * @date 2023-11-11
 */
@Data
@Api(tags = "生产指令单列表vo类")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BaseExpWorkOrderListVo implements Serializable {

    private static final long serialVersionUID = 5849910502038908727L;

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    private String id;

    /**
     * 工单编号，指令单单号
     */
    @ApiModelProperty("工单编号，指令单单号")
    private String number;

    /**
     * 品名
     */
    @ApiModelProperty("品名")
    private String productName;

    /**
     * 规格
     */
    @ApiModelProperty("规格")
    private String productSpecifications;

    /**
     * 创建时间，开单时间
     */
    @ApiModelProperty("创建时间，开单时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 起草人员名称
     */
    @ApiModelProperty("起草人员名称")
    private String startUserName;

    /**
     * 产量
     */
    @ApiModelProperty("产量")
    private String production;

    /**
     * 批号
     */
    @ApiModelProperty("批号")
    private String produceBatchNumber;

    /**
     * 分发部门，班级-小组的格式
     */
    @ApiModelProperty("分发部门，班级-小组的格式")
    private String dept;

    /**
     * 状态，1：启用，0：关闭
     */
    @ApiModelProperty("状态，1：启用，0：关闭")
    private Integer status;

    /**
     * 状态字符串
     */
    @ApiModelProperty("状态字符串")
    private String statusStr;

    /**
     * 工单状态，-1,：未开始，1：已完成，0：进行中
     */
    @ApiModelProperty("工单状态，-1,：未开始，1：已完成，0：进行中")
    private Integer processStatus;

    /**
     * 工单状态字符串
     */
    @ApiModelProperty("工单状态字符串")
    private String processStatusStr;

    /**
     * 关联报告数目
     */
    @ApiModelProperty("关联报告数目")
    private Integer relatedReportCount;

    /**
     * 班级名称
     */
    @ApiModelProperty("班级名称")
    private String className;

    /**
     * 小组名称
     */
    @ApiModelProperty("小组名称")
    private String groupName;

    /**
     * 小组ID数组
     */
    @ApiModelProperty("小组ID数组")
    private List<Long> groupIdList;

    /**
     * 子级
     */
    @ApiModelProperty("子级")
    private List<BaseExpWorkOrderListVo> children;
}
